package com.ruoyi.internship.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.internship.domain.BolePosition;
import com.ruoyi.internship.mapper.BoleCompanyMapper;
import com.ruoyi.internship.domain.BoleCompany;
import com.ruoyi.internship.service.IBoleCompanyService;

/**
 * 公司信息Service业务层处理
 * 
 * @author Wujiale
 * @date 2025-03-29
 */
@Service
public class BoleCompanyServiceImpl implements IBoleCompanyService 
{
    @Autowired
    private BoleCompanyMapper boleCompanyMapper;

    /**
     * 查询公司信息
     * 
     * @param companyId 公司信息主键
     * @return 公司信息
     */
    @Override
    public BoleCompany selectBoleCompanyByCompanyId(String companyId)
    {
        return boleCompanyMapper.selectBoleCompanyByCompanyId(companyId);
    }

    /**
     * 查询公司信息列表
     * 
     * @param boleCompany 公司信息
     * @return 公司信息
     */
    @Override
    public List<BoleCompany> selectBoleCompanyList(BoleCompany boleCompany)
    {
        return boleCompanyMapper.selectBoleCompanyList(boleCompany);
    }

    /**
     * 新增公司信息
     * 
     * @param boleCompany 公司信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertBoleCompany(BoleCompany boleCompany)
    {
        boleCompany.setCreateTime(DateUtils.getNowDate());
        int rows = boleCompanyMapper.insertBoleCompany(boleCompany);
        insertBolePosition(boleCompany);
        return rows;
    }

    /**
     * 修改公司信息
     * 
     * @param boleCompany 公司信息
     * @return 结果
     */
    @Transactional
    @Override
    public int updateBoleCompany(BoleCompany boleCompany)
    {
        boleCompany.setUpdateTime(DateUtils.getNowDate());
        boleCompanyMapper.deleteBolePositionByCompanyId(boleCompany.getCompanyId());
        insertBolePosition(boleCompany);
        return boleCompanyMapper.updateBoleCompany(boleCompany);
    }

    /**
     * 批量删除公司信息
     * 
     * @param companyIds 需要删除的公司信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteBoleCompanyByCompanyIds(String[] companyIds)
    {
        boleCompanyMapper.deleteBolePositionByCompanyIds(companyIds);
        return boleCompanyMapper.deleteBoleCompanyByCompanyIds(companyIds);
    }

    /**
     * 删除公司信息信息
     * 
     * @param companyId 公司信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteBoleCompanyByCompanyId(String companyId)
    {
        boleCompanyMapper.deleteBolePositionByCompanyId(companyId);
        return boleCompanyMapper.deleteBoleCompanyByCompanyId(companyId);
    }

    /**
     * 新增职位信息信息
     * 
     * @param boleCompany 公司信息对象
     */
    public void insertBolePosition(BoleCompany boleCompany)
    {
        List<BolePosition> bolePositionList = boleCompany.getBolePositionList();
        String companyId = boleCompany.getCompanyId();
        if (StringUtils.isNotNull(bolePositionList))
        {
            List<BolePosition> list = new ArrayList<BolePosition>();
            for (BolePosition bolePosition : bolePositionList)
            {
                bolePosition.setCompanyId(companyId);
                list.add(bolePosition);
            }
            if (list.size() > 0)
            {
                boleCompanyMapper.batchBolePosition(list);
            }
        }
    }
}
